# 求闭区间 [low, high] 中所有整数 n，满足 n*n 的值的每一位数字互不相同

# 判断参数n的各位数字是否互不相同，若互不相同，返回True，否则返回False
def isdiff(n):
    # 将整数n转换为字符串，以便遍历每一位数字
    str_n = str(n)
    # 使用集合来存储已经遍历过的数字
    seen = set()
    for digit in str_n:
        # 如果数字已经在集合中，说明有重复的数字，返回False
        if digit in seen:
            return False
        # 将数字添加到集合中
        seen.add(digit)
    # 如果遍历完所有数字都没有发现重复，返回True
    return True

if __name__ == '__main__':
    low_num  = eval(input())
    high_num = eval(input())
    for num in range(low_num, high_num):
        num2 = num**2
        if isdiff(num2):
            print(f"{num} {num2}")
    